Intents 應用意圖元件(模式/UX)

App Intents簡介

A 功能性:透過應用意圖,使用者可以在系統層面呼叫應用的特定功能,而不必開啟應用。

B 互動觸發方式:除了聚焦搜尋外,應用意圖還將你的應用功能擴充套件到系統體驗中,涵蓋了操作按鈕、擠壓手勢、小元件、控制項和Siri等功能。

C 應用意圖元件結構:應用名,動詞,最後包含執行意圖前需要填寫的引數。

設計App Intents的最佳實踐

A 設計Intents時,應該集中在基礎任務上(如設定、建立、刪除),這些操作在各類應用中廣泛使用。以動詞開頭的意圖是基礎意圖型別,決定你應用裡哪些功能要做成應用意圖時可以從它們入手。

B 不要為相同的任務做很多不同的意圖。比如,不要為不同的提醒事項分別建立一個應用意圖。

假設你有一個應用支援管理不同型別的提醒事項,比如工作提醒、購物提醒、運動提醒等。這樣一來,不僅意圖數量龐大,使用者還要在多個相似的選項中做選擇。

應該把應用的功能做成一個靈活的意圖,把提醒事項作為引數加進去。

更好的做法是建立一個通用的“開啟提醒”應用意圖,並在這個意圖中設定一個引數。這樣使用者只需呼叫一個意圖,再透過引數指定需要的提醒型別,使用起來更加高效且靈活。

C 不應該專門為某些UI操作設計,比如點選“取消”按鈕或在介面上滑動(使用者行為)。應用意圖應該關注執行功能,而不是簡單地模仿使用者介面的操作行為。

應該建立那些反映實際功能的意圖,比如儲存或刪除草稿,而不是單單點選按鈕的動作。

如何構建應用意圖元件

引數是配置Intents的核心,必須簡潔清晰。

A對於簡單任務,可以使用預設的引數。比如使用者可以選擇“開啟日曆,檢視9月15日的日程”。系統的內建引數可以幫助處理這些日期輸入,並簡化開發過程。預設的引數包含日期、時間、文字、數字等,用於處理常見任務。

B 如果你的引數需要包含一些內建引數沒有的選項,比如開啟應用的某個標籤頁,就用靜態引數把這些標籤頁選項加進去。使用者可以從這些選項中選擇特定的標籤頁進行操作。

C 如果你的引數有一些會隨時間變化的選項,比如使用者新增了更多的筆記資料夾,你可以建立一個動態引數,這樣引數會隨著新選項的增加而更新。

如果引數是可選的,而你沒有事先設定,意圖就不會追問你。比如執行這個意圖但沒選資料夾,它會直接開啟筆記的資料夾檢視,讓你選擇資料夾,而不是每次都問你要開啟哪個資料夾。

D 但如果你覺得這個意圖每次都需要引數才能有用,就可以把它設定為“必需”引數。比如,搜尋郵件的意圖必須輸入文字,否則沒用,所以文字引數是必需的。簡潔的問題可以避免使用者困惑,確保操作順利進行。

二元狀態處理方式

在構建一個只有兩種狀態的意圖時。比如,手電筒的應用意圖叫“設定手電筒”,它可以用來開啟或關閉手電筒。由於該意圖只在兩個狀態之間切換,因此該意圖應該支援“切換”作為預設引數。如果不支援“切換”作為預設引數,每次執行這個意圖時,系統都會詢問使用者是要開啟還是關閉手電筒。(這會增加使用者操作的複雜性,降低便捷性。)而有了“切換”預設引數,意圖就可以直接開關手電筒,不用每次都問你。

在應用意圖裡,兩種開啟應用的方式

開啟應用作為意圖的一部分,是常見的行為,因為以便使用者檢視執行結果。

A 第一種情況是,如果你的應用意圖本身的功能就是開啟某個特定檢視。例如,時鐘應用的這個意圖會開啟秒錶功能。當執行該意圖時,它會自動將時鐘應用切換到秒錶介面。這種設計確保應用意圖直接完成核心任務,不需要額外操作。

B 第二種情況是,應用意圖在執行後改變了應用的UI介面或顯示了搜尋結果。(這種情況意圖的核心是讓使用者看到具體的執行結果,比如某些資料的展示。)

比如,如果有一個建立Freeform板塊的意圖,執行完後應該開啟應用,展示新建立的板塊。這樣的設計減少了多餘的過渡過程,讓使用者更快地進入工作狀態。

這個行為在意圖中作為“執行時開啟”的選項,預設是開啟的。這樣使用者可以選擇關閉這個選項,比如在執行多個意圖時,不希望每個意圖都開啟對應的應用。